home *** CD-ROM | disk | FTP | other *** search
- set cylinder(color) {1.0 0.0 0.0}
- set cylinder(radius) 1.0
- set cylinder(zMin) -$cylinder(radius)
- set cylinder(zMax) $cylinder(radius)
- set cylinder(thetaMax) 360.0
-
- set cylinder(volumePreservingScaleFactor) 1.0
-
- EveCmd {set cylinder(xScale) [expr 1./sqrt($cylinder(volumePreservingScaleFactor))]}
- EveCmd {set cylinder(yScale) $cylinder(volumePreservingScaleFactor)}
- EveCmd {set cylinder(zScale) [expr 1./sqrt($cylinder(volumePreservingScaleFactor))]}
-
- set cylinder(xTranslate) 0
- set cylinder(yTranslate) 0
- set cylinder(zTranslate) 0
- set cylinder(xRotate) 0
- set cylinder(yRotate) 0
- set cylinder(zRotate) 0
-
- EveCmd {set cylinder(innerX) [expr {$cylinder(radius) * cos(radians($cylinder(thetaMax)))}]}
- EveCmd {set cylinder(innerY) [expr {$cylinder(radius) * sin(radians($cylinder(thetaMax)))}]}
-
- proc drawInside {thetaMax zMin zMax radius innerX innerY} {
- if {int($thetaMax) && [expr int($thetaMax)] % 360} \
- { Patch bilinear P "0 0 $zMax \
- $radius 0 $zMax \
- 0 0 $zMin \
- $radius 0 $zMin \
- ";
- Patch bilinear P "0 0 $zMax \
- $innerX $innerY $zMax \
- 0 0 $zMin \
- $innerX $innerY $zMin \
- ";
- } {}
- }
-
-
- # some animation stuff
- set shape cylinder
- set ${shape}(heightFactor) 2
- set ${shape}(radiusFactor) 2
- set ${shape}(zMinFactor) 2
- set ${shape}(zMaxFactor) 2
-